//
//  HACRouterUrlParserRules.h
//  HACRouter
//
//  Created by Chengjie on 2019/5/4.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

/**
 url字符串解析协议
 因为有些老项目可能url很特殊，
 需要手动映射为HACRouter的架构之中，此处提供了方便
 */
@protocol HACRouterUrlParserRules <NSObject>

/**
 自定义解析 Scheme，此处与白名单关联，
 决定了url是否是否参与router跳转
 */
- (NSString *)parseSchemeFromUrls:(NSString *)urls;

/**
 自定义解析 Host，此处与白名单关联，
 决定了url是否是否参与router跳转
 */
- (NSString *)parseHostFromUrls:(NSString *)urls;

/**
 类似 goods_detail, goods_list, 这样的标识和pathName唯一区别在于分割符号
 */
- (NSString *)parseRouterNameFromUrls:(NSString *)urls;

/**
 参数列表
 {
 "name" : "Jack"
 "age"  :  "18"
 }
 */
- (NSMutableDictionary<NSString *, NSString *> *)parseParametersFromUrls:(NSString *)parameters;

@optional

/**
 自定义URL映射
 */
- (NSURL *)parseUrlFromUrls:(NSString *)urls;

/**
 类似 goods/detail, goods/list, 这样的标识
 */
- (NSString *)parsePathNameFromUrls:(NSString *)urls;

@end

NS_ASSUME_NONNULL_END
